<?php

include_once 'Conexion.php';

class Inscripcion extends Conexion {
    
    public function registrar ($idAlumno, $idGrupo, $motivo, $constUnam, $idenOfic, $comproPago, $cartaCompro, $tipoAlum, $montoPago) {
        
        $this->conectar();
        
        $result = $this->insertar("INSERT INTO inscripcion(inidalumno, inidgrupo, inmotivo, indirconstaafili, indiridentioficial, indircompropago, indircartacompro, 
                                        intipoalum, inmontopagado)
                                    VALUES ($idAlumno, $idGrupo, '$motivo', 
                                            ". ($constUnam != '' ? "'$constUnam'" : "''" ) .", '$idenOfic', ". ($comproPago != '' ? "'$comproPago'" : "''" ) .", 
                                                ". ($cartaCompro != '' ? "'$cartaCompro'" : "''" ) .", 
                                            '$tipoAlum', $montoPago)", "inidinscripcion");
        
        $this->desconectar();
        
        return ($result == false ? false : $this->obtenerPorId($result));
    }
    
    public function obtenerPorId ($idInscripcion) {
        $this->conectar();
        
        $result = $this->consultar("SELECT * FROM inscripcion WHERE inidinscripcion = $idInscripcion");
        
        $this->desconectar();
        
        return $result[0];
    }
    
    //Obtiene las evaluaciones que se han hecho a los profesores, por cada inscripcion (idAlumno y idGrupo)
    public function obtenerEvaluacionesProfesores ($idAlumno, $idGrupo) {
        $this->conectar();
        
        $result = $this->consultar("SELECT evaluacionprofesor.* FROM INSCRIPCION JOIN EVALUACIONPROFESOR ON (evpridinscripcion = inidinscripcion) WHERE inidalumno = $idAlumno AND inidgrupo = $idGrupo");
        
        $this->desconectar();
        
        return $result;
    }
    
    //Verifica si un profesor ya fue evaluado, para un determinado Alumno y Grupo
    public function isProfesorEvaluado ($idModuloProfesor, $idAlumno, $idGrupo) {
        $this->conectar();
        
        $result = $this->consultar("SELECT evpridevaluacionprofesor FROM INSCRIPCION JOIN EVALUACIONPROFESOR ON (evpridinscripcion = inidinscripcion) 
                                        WHERE inidalumno = $idAlumno AND inidgrupo = $idGrupo AND evpridmoduloprofesor = $idModuloProfesor");
        
        $this->desconectar();
        
        return $result == false ? false : true;
    }
    
    public function isAlumnoEvaluado ($idAlumno, $idGrupo, $idProfEvalFinal) {
        $this->conectar();
        
        $result = $this->consultar("SELECT * FROM evaluacionAlumno JOIN inscripcion ON (evalidinscripcion = inidinscripcion) WHERE inidalumno = $idAlumno AND inidgrupo = $idGrupo AND evalidprofesorevalfinal = $idProfEvalFinal");
        
        $this->desconectar();
        
        return $result == false ? false : true;
    }
    
    public function registrarEvaluacion ($idProfEvalFinal, $idAlumno, $idGrupo, $fecha, $nomProy, $mod1a, $mod1b, $mod1c, $mod1d, $mod2a, $mod2b, $mod2c, $mod2d, 
                                            $mod3a, $mod3b, $mod3c, $mod3d, $mod3e, $mod3f, $mod3g, $mod3h, $mod4a, $mod4b, $mod4c, $mod5a, $mod5b, $mod6a, $mod6b, $mod6c, $mod6d, $mod7a) {
        $this->conectar();
        
        $result = $this->insertar("INSERT INTO evaluacionalumno(
                                                        evalidinscripcion, evalidprofesorevalfinal, evalfecha, evalnombreproyecto, 
                                                        evalmod1a, evalmod1b, evalmod1c, evalmod1d, evalmod2a, evalmod2b, 
                                                        evalmod2c, evalmod2d, evalmod3a, evalmod3b, evalmod3c, evalmod3d, 
                                                        evalmod3e, evalmod3f, evalmod3g, evalmod3h, evalmod4a, evalmod4b, 
                                                        evalmod4c, evalmod5a, evalmod5b, evalmod6a, evalmod6b, evalmod6c, 
                                                        evalmod6d, evalmod7a)
                                                VALUES ((SELECT inidinscripcion FROM inscripcion WHERE inidgrupo = $idGrupo AND inidalumno = $idAlumno), $idProfEvalFinal, 
                                                        '$fecha', '$nomProy', 
                                                        '$mod1a', '$mod1b', '$mod1c', '$mod1d', 
                                                        '$mod2a', '$mod2b', '$mod2c', '$mod2d',
                                                        '$mod3a', '$mod3b', '$mod3c', '$mod3d', '$mod3e', '$mod3f', '$mod3g', '$mod3h', 
                                                        '$mod4a', '$mod4b', '$mod4c', 
                                                        '$mod5a', '$mod5b', 
                                                        '$mod6a', '$mod6b', '$mod6c', '$mod6d', '$mod7a')", "evalidevaluacionalumno");
        
        $this->desconectar();
        
        if ($result != false) {
            $alumno = new Alumno();
            $mail = $alumno->obtenerPorId($idAlumno);
            $mail = $alumno->obtenerMedio($mail['peidpersona'], "m");
            
            //mail("$mail", $subject, $message)
        }    
        return $result;        
    }
    
    //Función para determinar si un alumno ya evaluo a todos sus profesores del curso tomado, es por módulo
    public function isEvaluoProfesores ($idGrupo, $idInscripcion) {
        
        $this->conectar();
        
        //Obtenemos las evaluaciones ya hechas por el alumno en su grupo actual (Incripción tiene el IdAlumno y el IdGrupo
        $resultado = $this->consultar("SELECT count(*) FROM evaluacionProfesor WHERE evpridinscripcion = $idInscripcion");
        $evaluacionesDelAlumno = $resultado[0]['count'];
        
        //Obtenemos el total de modulos de ese grupo
        $resultado = $this->consultar("SELECT count(*) FROM moduloProfesor WHERE mopridgrupo = $idGrupo");
        $totalModulos = $resultado[0]['count'];
        
        $this->desconectar();
        
        if ($evaluacionesDelAlumno == $totalModulos) {
            return true;
        } else {
            return false;
        }
    }
}
?>
